package com.by.rpc.enums;

/**
 * 参数位置枚举
 * 定义RPC方法参数在HTTP请求中的位置
 */
public enum ParameterPosition {
    
    /**
     * 请求体参数
     */
    BODY("body"),
    
    /**
     * 请求头参数
     */
    HEADER("header"),
    
    /**
     * 路径参数
     */
    PATH("path"),
    
    /**
     * 查询参数
     */
    QUERY("query"),
    
    /**
     * 表单参数
     */
    FORM("form"),
    
    /**
     * 文件参数
     */
    FILE("file"),
    
    /**
     * 任意位置参数
     */
    ANY("any"),

    RPC("rpc");
    
    private final String value;
    
    ParameterPosition(String value) {
        this.value = value;
    }
    
    public String getValue() {
        return value;
    }
    
    /**
     * 根据字符串值获取对应的枚举值
     * 
     * @param value 字符串值
     * @return 对应的枚举值，如果找不到则返回ANY
     */
    public static ParameterPosition fromValue(String value) {
        for (ParameterPosition position : ParameterPosition.values()) {
            if (position.getValue().equals(value)) {
                return position;
            }
        }
        return ANY;
    }

    @Override
    public String toString() {
        return value;
    }
}